<?php

namespace Admin\Controller;

/**
 * Description of MenuController
 *
 * @author 阿明 symphp@foxmail.com
 */
class MenuController extends \Think\Controller{
    //创建模型对象
    private $_model = null;
    
    protected function _initialize() {
        //构建数据
        $meta_titles = array(
            'index' => '菜单管理',
            'add' => '菜单添加',
            'edit' => '菜单修改',
            'delete' => '菜单删除',
        );
        $meta_title = $meta_titles[ACTION_NAME];
        //发送数据
        $this->assign('meta_title', $meta_title);
        //创建模型对象
        $this->_model = D('Menu');
    }
    
    /**
     * 显示首页
     */
    public function index(){
        //获取并发送数据
        $this->assign('rows', $this->_model->getList());
        $this->display();
    }
    
    /**
     * 添加方法
     */
    public function add(){
        if(IS_POST){
            if($this->_model->create()===false){
                $this->error(get_error($this->_model->getError()));
            }
            if($this->_model->addMenu()===false){
                $this->error(get_error($this->_model->getError()));
            }
            $this->success('添加成功',U('index'));
        }else{
            $this->_before_view();
            $this->display();
        }
    }
    
    /**
     * 删除
     * @param type $id
     */
    public function edit($id){
        if(IS_POST){
            if($this->_model->create()===false){
                $this->error(get_error($this->_model->getError()));
            }
            if($this->_model->updateMenu()===false){
                $this->error(get_error($this->_model->getError()));
            }
            $this->success('修改成功',U('index'));
        }else{
            //准备数据
            $row = $this->_model->getMenuInfo($id);
            $this->assign('row', $row);
            $this->_before_view();
            $this->display('add');
        }
    }

        /**
     * 用于获取关联表数据
     */
    public function _before_view(){
        //准备权限列表
        $permissions = D('permission')->getList('id,name,parent_id');
        $this->assign('permissions', json_encode($permissions));
        //获取菜单列表
        $menus = D('menu')->getList();
        //添加一个顶级分类
        array_shift($menus,array('id'=>0,'parent_id'=>0,'name'=>'顶级菜单'));
        $this->assign('menus', json_encode($menus));
    }
    
    /**
     * 删除方法
     */
    
    public function del($id){
        if($this->_model->delMenu($id) === false){
            $this->error('删除失败');
        };
        $this->success('删除成功');
    }
}
